--
-- PostgreSQL database dump
--

-- Dumped from database version 9.1.4
-- Dumped by pg_dump version 9.1.4
-- Started on 2013-11-22 02:50:10

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;

--
-- TOC entry 209 (class 3079 OID 11639)
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
--

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;


--
-- TOC entry 2174 (class 0 OID 0)
-- Dependencies: 209
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
--

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';


SET search_path = public, pg_catalog;

--
-- TOC entry 221 (class 1255 OID 16491)
-- Dependencies: 660 5
-- Name: ajuste_stock_alta_sucursal(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION ajuste_stock_alta_sucursal() RETURNS trigger
    LANGUAGE plpgsql
    AS $$declare
  r record;

begin
  for r in select prd_cdg from producto
  loop
    insert into stock(stk_producto, stk_cantidad, stk_sucursal) values(r.prd_cdg, 0, NEW.suc_cdg);
  end loop;

  return NEW;
end;$$;


--
-- TOC entry 222 (class 1255 OID 16492)
-- Dependencies: 5 660
-- Name: ajuste_stock_cero(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION ajuste_stock_cero() RETURNS trigger
    LANGUAGE plpgsql
    AS $$begin
  if new.stk_cantidad < 0 then
    new.stk_cantidad := 0;
  end if;
  return new;
end;$$;


--
-- TOC entry 223 (class 1255 OID 16493)
-- Dependencies: 5 660
-- Name: alta_arqueo(bigint, double precision, integer); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION alta_arqueo(producto bigint, cantidad double precision, sucursal integer) RETURNS integer
    LANGUAGE plpgsql
    AS $$begin
  update stock set stk_cantidad = stk_cantidad + cantidad where stk_producto = producto and stk_sucursal = sucursal;

  insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) 
    values(producto, 'ALTA POR ARQUEO', cantidad, sucursal);

  return 0;
end;$$;


--
-- TOC entry 224 (class 1255 OID 16494)
-- Dependencies: 660 5
-- Name: alta_devolucion(bigint, double precision, integer); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION alta_devolucion(producto bigint, cantidad double precision, sucursal integer) RETURNS integer
    LANGUAGE plpgsql
    AS $$begin
  update stock set stk_cantidad = stk_cantidad + cantidad where stk_producto = producto and stk_sucursal = sucursal;

  insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) 
    values(producto, 'ALTA POR DEVOLUCION', cantidad, sucursal);

  return 0;
end;$$;


--
-- TOC entry 225 (class 1255 OID 16495)
-- Dependencies: 660 5
-- Name: alta_stock(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION alta_stock() RETURNS trigger
    LANGUAGE plpgsql
    AS $$declare
  r record;

begin
  for r in select suc_cdg from sucursal
  loop
    insert into stock(stk_producto, stk_cantidad, stk_sucursal) values(NEW.prd_cdg, 0, r.suc_cdg);
  end loop;

  return new;
end;$$;


--
-- TOC entry 226 (class 1255 OID 16496)
-- Dependencies: 660 5
-- Name: alta_transferencia(bigint, double precision, integer); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION alta_transferencia(producto bigint, cantidad double precision, sucursal integer) RETURNS integer
    LANGUAGE plpgsql
    AS $$begin
  update stock set stk_cantidad = stk_cantidad + cantidad where stk_producto = producto and stk_sucursal = sucursal;

  insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) 
    values(producto, 'ALTA POR TRANSFERENCIA', cantidad, sucursal);

  return 0;
end;$$;


--
-- TOC entry 227 (class 1255 OID 16497)
-- Dependencies: 660 5
-- Name: anular_compra(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION anular_compra() RETURNS trigger
    LANGUAGE plpgsql
    AS $$begin
  update stock set stk_cantidad = stk_cantidad - OLD.cmp_cantidad where stk_producto = OLD.cmp_producto and stk_sucursal = OLD.cmp_sucursal;

  insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) 
    values(OLD.cmp_producto, 'BAJA POR ANULACION DE COMPRA', OLD.cmp_cantidad, OLD.cmp_sucursal);

  return old;
end;$$;


--
-- TOC entry 228 (class 1255 OID 16498)
-- Dependencies: 5 660
-- Name: baja_arqueo(bigint, double precision, integer); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION baja_arqueo(producto bigint, cantidad double precision, sucursal integer) RETURNS integer
    LANGUAGE plpgsql
    AS $$begin
  update stock set stk_cantidad = stk_cantidad - cantidad where stk_producto = producto and stk_sucursal = sucursal;
   
    insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) 
      values(producto, 'BAJA POR ARQUEO', cantidad, sucursal);
  
  return 0;
end;$$;


--
-- TOC entry 229 (class 1255 OID 16499)
-- Dependencies: 5 660
-- Name: baja_devolucion(bigint, double precision, integer); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION baja_devolucion(producto bigint, cantidad double precision, sucursal integer) RETURNS integer
    LANGUAGE plpgsql
    AS $$begin
  update stock set stk_cantidad = stk_cantidad - cantidad where stk_producto = producto and stk_sucursal = sucursal;
   
  insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) 
    values(producto, 'BAJA POR DEVOLUCION', cantidad, sucursal);

  return 0;
end;$$;


--
-- TOC entry 230 (class 1255 OID 16500)
-- Dependencies: 5 660
-- Name: baja_por_venta(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION baja_por_venta() RETURNS trigger
    LANGUAGE plpgsql
    AS $$declare
  sucursal integer;
begin
  sucursal := vta_sucursal from venta where vta_cdg = NEW.prv_venta;
  update stock set stk_cantidad = stk_cantidad - NEW.prv_cantidad where stk_producto = NEW.prv_producto and stk_sucursal = sucursal;

  insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) values(NEW.prv_producto, 'BAJA POR VENTA',
    NEW.prv_cantidad, sucursal);

  return NEW;
end$$;


--
-- TOC entry 231 (class 1255 OID 16501)
-- Dependencies: 5 660
-- Name: baja_transferencia(bigint, double precision, integer); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION baja_transferencia(producto bigint, cantidad double precision, sucursal integer) RETURNS integer
    LANGUAGE plpgsql
    AS $$begin
  update stock set stk_cantidad = stk_cantidad - cantidad where stk_producto = producto and stk_sucursal = sucursal;
   
    insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) 
      values(producto, 'BAJA POR TRANSFERENCIA', cantidad, sucursal);
  
  return 0;
end;$$;


--
-- TOC entry 232 (class 1255 OID 16502)
-- Dependencies: 660 5
-- Name: borrar_producto_venta(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION borrar_producto_venta() RETURNS trigger
    LANGUAGE plpgsql
    AS $$declare
  sucursal integer;
  precio double precision;
  iva double precision;
  precio_siva double precision;
  
begin
  sucursal := vta_sucursal from venta where vta_cdg = OLD.prv_venta;
  precio := OLD.prv_precio * OLD.prv_cantidad;
  iva := OLD.prv_iva * precio / 100;
  precio_siva := precio - iva;
  
  update stock set stk_cantidad = stk_cantidad + OLD.prv_cantidad where stk_producto = OLD.prv_producto and stk_sucursal = sucursal;
  update venta set vta_total = vta_total - precio, vta_total_iva = vta_total_iva - iva, vta_total_siva = vta_total_siva - precio_siva
   where vta_cdg = OLD.prv_venta;
  
  insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) values(OLD.prv_producto, 'ALTA POR CANCELACION DE VENTA',
    OLD.prv_cantidad, sucursal);

  return OLD;
end $$;


--
-- TOC entry 233 (class 1255 OID 16503)
-- Dependencies: 660 5
-- Name: cerrar_incidencia(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION cerrar_incidencia() RETURNS trigger
    LANGUAGE plpgsql
    AS $$begin
  if NEW.inc_estado = 'CERRADO' then
    NEW.inc_fecha_cierre = current_date;
  end if;

  return new;
end;$$;


--
-- TOC entry 234 (class 1255 OID 16504)
-- Dependencies: 660 5
-- Name: comprar(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION comprar() RETURNS trigger
    LANGUAGE plpgsql
    AS $$begin
  update stock set stk_cantidad = stk_cantidad + NEW.cmp_cantidad where stk_producto = NEW.cmp_producto and stk_sucursal = NEW.cmp_sucursal;

  insert into movimiento_stock(mvs_producto, mvs_movimiento, mvs_cantidad, mvs_sucursal) 
    values(NEW.cmp_producto, 'ALTA POR COMPRA', NEW.cmp_cantidad, NEW.cmp_sucursal);

  return new;
end;$$;


--
-- TOC entry 235 (class 1255 OID 16505)
-- Dependencies: 660 5
-- Name: descontar(integer, double precision); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION descontar(codigo_venta integer, descuento double precision) RETURNS double precision
    LANGUAGE plpgsql
    AS $$declare
  cantidad double precision;

begin
  cantidad := descuento * (select vta_total from venta where vta_cdg = codigo_venta) / 100;

  update venta set vta_total = vta_total + cantidad, vta_descuento = descuento where vta_cdg = codigo_venta;

  return cantidad;
end;$$;


--
-- TOC entry 236 (class 1255 OID 16506)
-- Dependencies: 5 660
-- Name: modificar_precio_fabricante(double precision, character varying); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION modificar_precio_fabricante(porcentaje double precision, nombre_fabricante character varying) RETURNS integer
    LANGUAGE plpgsql
    AS $$declare
 codigo_fabricante bigint;
 porcentaje2  double precision;

begin
 codigo_fabricante := fab_cdg from fabricante where fab_nombre = nombre_fabricante;

 if porcentaje > 0 then 
  update producto set prd_precio1 = prd_precio1 + porcentaje * prd_precio1 / 100, 
   prd_precio2 = prd_precio2 + porcentaje * prd_precio2 / 100, prd_precio3 = prd_precio3 + porcentaje * prd_precio3 / 100,
   prd_precio4 = prd_precio4 + porcentaje * prd_precio4 / 100 where prd_fabricante = codigo_fabricante;
 else
  porcentaje2 := 0 - porcentaje;
  update producto set prd_precio1 = prd_precio1 - porcentaje2 * prd_precio1 / 100, 
   prd_precio2 = prd_precio2 - porcentaje2 * prd_precio2 / 100, prd_precio3 = prd_precio3 - porcentaje2 * prd_precio3 / 100,
   prd_precio4 = prd_precio4 - porcentaje2 * prd_precio4 / 100 where prd_fabricante = codigo_fabricante;
 end if;
 return 0;
end;$$;


--
-- TOC entry 237 (class 1255 OID 16507)
-- Dependencies: 660 5
-- Name: modificar_precio_fmp(double precision, character varying); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION modificar_precio_fmp(porcentaje double precision, familia character varying) RETURNS integer
    LANGUAGE plpgsql
    AS $$declare
 codigo_fmp bigint;
 porcentaje2  double precision;

begin
 codigo_fmp := fmp_cdg from familia_producto where fmp_nombre = familia;

 if porcentaje > 0 then 
  update producto set prd_precio1 = prd_precio1 + porcentaje * prd_precio1 / 100, 
   prd_precio2 = prd_precio2 + porcentaje * prd_precio2 / 100, prd_precio3 = prd_precio3 + porcentaje * prd_precio3 / 100,
   prd_precio4 = prd_precio4 + porcentaje * prd_precio4 / 100 where prd_familia = codigo_fmp;
 else
  porcentaje2 := 0 - porcentaje;
  update producto set prd_precio1 = prd_precio1 - porcentaje2 * prd_precio1 / 100, 
   prd_precio2 = prd_precio2 - porcentaje2 * prd_precio2 / 100, prd_precio3 = prd_precio3 - porcentaje2 * prd_precio3 / 100,
   prd_precio4 = prd_precio4 - porcentaje2 * prd_precio4 / 100 where prd_familia = codigo_fmp;
 end if;
 return 0;
end;$$;


--
-- TOC entry 239 (class 1255 OID 16989)
-- Dependencies: 660 5
-- Name: nueva_entrada_resumen_cuenta(); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION nueva_entrada_resumen_cuenta() RETURNS trigger
    LANGUAGE plpgsql
    AS $$begin
 NEW.rsm_saldo = saldo from vw_cliente where cln_cdg = NEW.rsm_cliente;
 return NEW;
end;$$;


--
-- TOC entry 238 (class 1255 OID 16508)
-- Dependencies: 660 5
-- Name: vender(integer, bigint, double precision, double precision); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION vender(codigo_venta integer, codigo_producto bigint, cantidad double precision, precio_unitario double precision) RETURNS integer
    LANGUAGE plpgsql
    AS $$declare
  precio_total double precision;
  precio_total_siva double precision;
  total_iva double precision;
  iva double precision;
  impint double precision;

begin
  iva := prd_iva from producto where prd_cdg = codigo_producto;
  impint := prd_impint from producto where prd_cdg = codigo_producto;

  insert into producto_venta(prv_producto, prv_cantidad, prv_venta, prv_precio, prv_iva, prv_impint) values(codigo_producto, cantidad, codigo_venta, precio_unitario, iva, impint);

  precio_total := precio_unitario * cantidad;
  precio_total_siva :=  precio_total / ((iva / 100) + 1);
  total_iva := precio_total - precio_total_siva;
  
  update venta set vta_total = vta_total + precio_total, vta_total_iva = vta_total_iva + total_iva, vta_total_siva = vta_total_siva + precio_total_siva 
    where vta_cdg = codigo_venta;
 
  return 0;
end$$;


--
-- TOC entry 161 (class 1259 OID 16509)
-- Dependencies: 5
-- Name: cliente_cln_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE cliente_cln_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


SET default_with_oids = false;

--
-- TOC entry 162 (class 1259 OID 16511)
-- Dependencies: 2033 2034 5
-- Name: cliente; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE cliente (
    cln_cdg integer DEFAULT nextval('cliente_cln_cdg_seq'::regclass) NOT NULL,
    cln_nombre character varying(50) NOT NULL,
    cln_cuit character varying(50) DEFAULT 0 NOT NULL,
    cln_iva character(1),
    cln_direccion character varying(200),
    cln_email character varying(50),
    cln_telefono character varying(50),
    cln_region character varying(50)
);


--
-- TOC entry 163 (class 1259 OID 16516)
-- Dependencies: 5
-- Name: compra_cmp_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE compra_cmp_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 164 (class 1259 OID 16518)
-- Dependencies: 2035 2036 2037 2038 5
-- Name: compra; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE compra (
    cmp_cdg integer DEFAULT nextval('compra_cmp_cdg_seq'::regclass) NOT NULL,
    cmp_fecha date DEFAULT ('now'::text)::date NOT NULL,
    cmp_producto bigint DEFAULT 0 NOT NULL,
    cmp_proveedor integer NOT NULL,
    cmp_cantidad double precision DEFAULT 0 NOT NULL,
    cmp_sucursal integer
);


--
-- TOC entry 165 (class 1259 OID 16525)
-- Dependencies: 5
-- Name: fabricante_fab_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE fabricante_fab_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 166 (class 1259 OID 16527)
-- Dependencies: 2039 5
-- Name: fabricante; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE fabricante (
    fab_cdg integer DEFAULT nextval('fabricante_fab_cdg_seq'::regclass) NOT NULL,
    fab_nombre character varying(50) NOT NULL,
    fab_descripcion character varying(100)
);


--
-- TOC entry 167 (class 1259 OID 16531)
-- Dependencies: 5
-- Name: familia_prodructo_fmp_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE familia_prodructo_fmp_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 168 (class 1259 OID 16533)
-- Dependencies: 2040 5
-- Name: familia_producto; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE familia_producto (
    fmp_cdg integer DEFAULT nextval('familia_prodructo_fmp_cdg_seq'::regclass) NOT NULL,
    fmp_nombre character varying(50) NOT NULL,
    fmp_descripcion character varying(100)
);


--
-- TOC entry 169 (class 1259 OID 16537)
-- Dependencies: 5
-- Name: funcionario_fnc_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE funcionario_fnc_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 170 (class 1259 OID 16539)
-- Dependencies: 2041 5
-- Name: funcionario; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE funcionario (
    fnc_cdg integer DEFAULT nextval('funcionario_fnc_cdg_seq'::regclass) NOT NULL,
    fnc_nombre character varying(50) NOT NULL,
    fnc_descripcion character varying(50)
);


--
-- TOC entry 171 (class 1259 OID 16543)
-- Dependencies: 5
-- Name: incidente_inc_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE incidente_inc_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 172 (class 1259 OID 16545)
-- Dependencies: 2042 2043 2044 2045 5
-- Name: incidente; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE incidente (
    inc_cdg integer DEFAULT nextval('incidente_inc_cdg_seq'::regclass) NOT NULL,
    inc_fecha_inicio date DEFAULT ('now'::text)::date NOT NULL,
    inc_cliente integer,
    inc_titulo character varying(100) NOT NULL,
    inc_descripcion text,
    inc_desarrollo text,
    inc_estado character varying(10) DEFAULT 'ABIERTO'::text NOT NULL,
    inc_fecha_cierre date,
    inc_responsable integer,
    CONSTRAINT check_estado CHECK (((((inc_estado)::text = 'ABIERTO'::text) OR ((inc_estado)::text = 'EN CURSO'::text)) OR ((inc_estado)::text = 'CERRADO'::text)))
);


--
-- TOC entry 173 (class 1259 OID 16555)
-- Dependencies: 5
-- Name: movimientos_stock_mvs_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE movimientos_stock_mvs_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 174 (class 1259 OID 16557)
-- Dependencies: 2046 2047 2048 5
-- Name: movimiento_stock; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE movimiento_stock (
    mvs_cdg integer DEFAULT nextval('movimientos_stock_mvs_cdg_seq'::regclass) NOT NULL,
    mvs_fecha timestamp with time zone DEFAULT now(),
    mvs_producto bigint,
    mvs_movimiento character varying(50) NOT NULL,
    mvs_cantidad integer NOT NULL,
    mvs_sucursal integer,
    CONSTRAINT mvs_movimiento_check CHECK ((((((((((((mvs_movimiento)::text = 'ALTA POR COMPRA'::text) OR ((mvs_movimiento)::text = 'BAJA POR ANULACION DE COMPRA'::text)) OR ((mvs_movimiento)::text = 'BAJA POR DEVOLUCION'::text)) OR ((mvs_movimiento)::text = 'ALTA POR DEVOLUCION'::text)) OR ((mvs_movimiento)::text = 'ALTA POR ARQUEO'::text)) OR ((mvs_movimiento)::text = 'BAJA POR ARQUEO'::text)) OR ((mvs_movimiento)::text = 'BAJA POR VENTA'::text)) OR ((mvs_movimiento)::text = 'ALTA POR CANCELACION DE VENTA'::text)) OR ((mvs_movimiento)::text = 'ALTA POR TRANSFERENCIA'::text)) OR ((mvs_movimiento)::text = 'BAJA POR TRANSFERENCIA'::text)))
);


--
-- TOC entry 175 (class 1259 OID 16563)
-- Dependencies: 5
-- Name: pago_pgo_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE pago_pgo_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 176 (class 1259 OID 16565)
-- Dependencies: 2049 2050 2051 2052 2053 5
-- Name: pago; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE pago (
    pgo_cdg integer DEFAULT nextval('pago_pgo_cdg_seq'::regclass) NOT NULL,
    pgo_cliente integer,
    pgo_descripcion character varying(50),
    pgo_monto double precision DEFAULT 0,
    pgo_fecha timestamp with time zone DEFAULT now(),
    pgo_tipo character varying(20) DEFAULT 'CONTADO'::character varying,
    pgo_sucursal integer,
    CONSTRAINT pgo_tipo_check CHECK ((((((pgo_tipo)::text = 'CONTADO'::text) OR ((pgo_tipo)::text = 'TARJETA'::text)) OR ((pgo_tipo)::text = 'CHEQUE'::text)) OR ((pgo_tipo)::text = 'DEBITO'::text)))
);


--
-- TOC entry 177 (class 1259 OID 16573)
-- Dependencies: 5
-- Name: producto_prd_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE producto_prd_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 178 (class 1259 OID 16575)
-- Dependencies: 2054 2055 2056 2057 2058 2059 2060 2061 2062 5
-- Name: producto; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE producto (
    prd_cdg bigint DEFAULT nextval('producto_prd_cdg_seq'::regclass) NOT NULL,
    prd_nombre character varying(50) NOT NULL,
    prd_descripcion character varying(100),
    prd_familia integer,
    prd_fabricante integer,
    prd_precio1 double precision DEFAULT 0 NOT NULL,
    prd_stock_minimo integer DEFAULT 0 NOT NULL,
    prd_stock_maximo integer DEFAULT 0,
    prd_iva double precision DEFAULT 21.0,
    prd_impint double precision DEFAULT 0,
    prd_precio2 double precision DEFAULT 0,
    prd_precio3 double precision DEFAULT 0,
    prd_precio4 double precision DEFAULT 0
);


--
-- TOC entry 179 (class 1259 OID 16587)
-- Dependencies: 5
-- Name: producto_venta_prv_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE producto_venta_prv_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 180 (class 1259 OID 16589)
-- Dependencies: 2063 2064 2065 2066 5
-- Name: producto_venta; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE producto_venta (
    prv_cdg integer DEFAULT nextval('producto_venta_prv_cdg_seq'::regclass) NOT NULL,
    prv_producto bigint,
    prv_cantidad double precision NOT NULL,
    prv_venta integer,
    prv_precio double precision DEFAULT 0 NOT NULL,
    prv_iva double precision DEFAULT 21,
    prv_impint double precision DEFAULT 0
);


--
-- TOC entry 181 (class 1259 OID 16596)
-- Dependencies: 5
-- Name: proveedor_prv_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE proveedor_prv_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 182 (class 1259 OID 16598)
-- Dependencies: 2067 5
-- Name: proveedor; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE proveedor (
    prv_cdg integer DEFAULT nextval('proveedor_prv_cdg_seq'::regclass) NOT NULL,
    prv_nombre character varying(50) NOT NULL,
    prv_contacto character varying(50),
    prv_email character varying(50),
    prv_telefono character varying(50),
    prv_direccion character varying(100)
);


--
-- TOC entry 183 (class 1259 OID 16602)
-- Dependencies: 5
-- Name: responsabilidad_iva; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE responsabilidad_iva (
    riva_cdg character(1) NOT NULL,
    riva_descripcion character varying(30)
);


--
-- TOC entry 206 (class 1259 OID 16996)
-- Dependencies: 2086 5
-- Name: resumen_cuenta; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE resumen_cuenta (
    rsm_cdg integer NOT NULL,
    rsm_cliente integer,
    rsm_fecha timestamp with time zone DEFAULT now(),
    rsm_descripcion character varying(200),
    rsm_operacion integer,
    rsm_debe double precision,
    rsm_haber double precision,
    rsm_saldo double precision
);


--
-- TOC entry 205 (class 1259 OID 16994)
-- Dependencies: 206 5
-- Name: resumen_cuenta_rsm_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE resumen_cuenta_rsm_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 2175 (class 0 OID 0)
-- Dependencies: 205
-- Name: resumen_cuenta_rsm_cdg_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--

ALTER SEQUENCE resumen_cuenta_rsm_cdg_seq OWNED BY resumen_cuenta.rsm_cdg;


--
-- TOC entry 184 (class 1259 OID 16605)
-- Dependencies: 5
-- Name: retiro_caja_rtc_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE retiro_caja_rtc_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 185 (class 1259 OID 16607)
-- Dependencies: 2068 2069 5
-- Name: retiro_caja; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE retiro_caja (
    rtc_cdg integer DEFAULT nextval('retiro_caja_rtc_cdg_seq'::regclass) NOT NULL,
    rtc_fecha timestamp with time zone DEFAULT now(),
    rtc_funcionario integer,
    rtc_descripcion character varying(50),
    rtc_monto double precision NOT NULL,
    rtc_sucursal integer
);


--
-- TOC entry 186 (class 1259 OID 16612)
-- Dependencies: 5
-- Name: retiro_premios_rtp_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE retiro_premios_rtp_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 187 (class 1259 OID 16614)
-- Dependencies: 2070 2071 5
-- Name: retiro_premios; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE retiro_premios (
    rtp_cdg integer DEFAULT nextval('retiro_premios_rtp_cdg_seq'::regclass) NOT NULL,
    rtp_fecha date DEFAULT now() NOT NULL,
    rtp_cliente integer NOT NULL,
    rtp_valor double precision NOT NULL,
    rtp_detalle character varying(100) NOT NULL
);


--
-- TOC entry 188 (class 1259 OID 16619)
-- Dependencies: 5
-- Name: stock_stk_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE stock_stk_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 189 (class 1259 OID 16621)
-- Dependencies: 2072 2073 5
-- Name: stock; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE stock (
    stk_cdg integer DEFAULT nextval('stock_stk_cdg_seq'::regclass) NOT NULL,
    stk_producto bigint,
    stk_cantidad double precision DEFAULT 0 NOT NULL,
    stk_sucursal integer
);


--
-- TOC entry 190 (class 1259 OID 16626)
-- Dependencies: 5
-- Name: sucursal_suc_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE sucursal_suc_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 191 (class 1259 OID 16628)
-- Dependencies: 2074 2075 5
-- Name: sucursal; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE sucursal (
    suc_cdg integer DEFAULT nextval('sucursal_suc_cdg_seq'::regclass) NOT NULL,
    suc_nombre character varying(50) NOT NULL,
    suc_descripcion character varying(50),
    CONSTRAINT chk_descr CHECK (((((suc_descripcion)::text = 'CASA MATRIZ'::text) OR ((suc_descripcion)::text = 'SUCURSAL'::text)) OR ((suc_descripcion)::text = 'TRANSPORTE'::text)))
);


--
-- TOC entry 192 (class 1259 OID 16633)
-- Dependencies: 5
-- Name: venta_vta_cdg_seq; Type: SEQUENCE; Schema: public; Owner: -
--

CREATE SEQUENCE venta_vta_cdg_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- TOC entry 193 (class 1259 OID 16635)
-- Dependencies: 2076 2077 2078 2079 2080 2081 2082 2083 2084 5
-- Name: venta; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE venta (
    vta_cdg integer DEFAULT nextval('venta_vta_cdg_seq'::regclass) NOT NULL,
    vta_cliente integer,
    vta_total double precision DEFAULT 0,
    vta_descuento double precision DEFAULT 0,
    vta_tipo character varying(8) DEFAULT 'CONTADO'::character varying NOT NULL,
    vta_detalle character varying(50),
    vta_fecha timestamp with time zone DEFAULT now(),
    vta_funcionario integer NOT NULL,
    vta_sucursal integer,
    vta_total_iva double precision DEFAULT 0,
    vta_total_siva double precision DEFAULT 0,
    vta_broker integer,
    vta_saldo double precision DEFAULT 0,
    CONSTRAINT vta_tipo_check CHECK (((((((vta_tipo)::text = 'CONTADO'::text) OR ((vta_tipo)::text = 'CTACTE'::text)) OR ((vta_tipo)::text = 'TARJETA'::text)) OR ((vta_tipo)::text = 'CHEQUE'::text)) OR ((vta_tipo)::text = 'DEBITO'::text)))
);


--
-- TOC entry 202 (class 1259 OID 16956)
-- Dependencies: 2028 5
-- Name: vw_venta; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_venta AS
    SELECT venta.vta_cdg, venta.vta_fecha AS momento, (venta.vta_fecha)::date AS vta_fecha, (venta.vta_fecha)::time without time zone AS vta_hora, venta.vta_tipo, cliente.cln_nombre, cliente.cln_iva, cliente.cln_cuit, sucursal.suc_nombre, funcionario.fnc_nombre, venta.vta_total, venta.vta_total_siva, venta.vta_total_iva, venta.vta_broker AS broker_cdg, (SELECT cliente.cln_nombre FROM cliente WHERE (cliente.cln_cdg = venta.vta_broker)) AS broker, venta.vta_saldo FROM venta, cliente, funcionario, sucursal WHERE (((venta.vta_cliente = cliente.cln_cdg) AND (venta.vta_funcionario = funcionario.fnc_cdg)) AND (venta.vta_sucursal = sucursal.suc_cdg));


--
-- TOC entry 204 (class 1259 OID 16983)
-- Dependencies: 2030 5
-- Name: vw_cliente; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_cliente AS
    SELECT cliente.cln_cdg, cliente.cln_nombre, cliente.cln_cuit, responsabilidad_iva.riva_descripcion, cliente.cln_direccion, cliente.cln_region, cliente.cln_email, cliente.cln_telefono, round((((SELECT CASE WHEN (sum(venta.vta_total) IS NULL) THEN (0)::double precision ELSE sum(venta.vta_total) END AS sum FROM venta WHERE ((venta.vta_cliente = cliente.cln_cdg) AND ((venta.vta_tipo)::text = 'CTACTE'::text))))::numeric - ((SELECT CASE WHEN (sum(pago.pgo_monto) IS NULL) THEN (0)::double precision ELSE sum(pago.pgo_monto) END AS sum FROM pago WHERE (pago.pgo_cliente = cliente.cln_cdg)))::numeric), 2) AS saldo, ((SELECT sum(vw_venta.vta_total) AS sum FROM vw_venta WHERE (vw_venta.broker_cdg = cliente.cln_cdg)) - (SELECT CASE WHEN (sum(retiro_premios.rtp_valor) IS NULL) THEN ((0)::bigint)::double precision ELSE sum(retiro_premios.rtp_valor) END AS sum FROM retiro_premios WHERE (retiro_premios.rtp_cliente = cliente.cln_cdg))) AS score FROM cliente, responsabilidad_iva WHERE (cliente.cln_iva = responsabilidad_iva.riva_cdg);


--
-- TOC entry 194 (class 1259 OID 16656)
-- Dependencies: 2020 5
-- Name: vw_compra; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_compra AS
    SELECT compra.cmp_fecha, compra.cmp_cdg, producto.prd_nombre, proveedor.prv_nombre, compra.cmp_cantidad, sucursal.suc_nombre FROM compra, producto, proveedor, sucursal WHERE (((compra.cmp_producto = producto.prd_cdg) AND (compra.cmp_proveedor = proveedor.prv_cdg)) AND (compra.cmp_sucursal = sucursal.suc_cdg));


--
-- TOC entry 195 (class 1259 OID 16660)
-- Dependencies: 2021 5
-- Name: vw_incidente; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_incidente AS
    SELECT incidente.inc_cdg, incidente.inc_fecha_inicio, cliente.cln_nombre, cliente.cln_cuit, incidente.inc_titulo, funcionario.fnc_nombre, incidente.inc_estado, incidente.inc_fecha_cierre FROM incidente, cliente, funcionario WHERE ((incidente.inc_cliente = cliente.cln_cdg) AND (incidente.inc_responsable = funcionario.fnc_cdg));


--
-- TOC entry 208 (class 1259 OID 17021)
-- Dependencies: 2032 5
-- Name: vw_listado_productos_comprados; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_listado_productos_comprados AS
    SELECT vw_venta.vta_fecha, vw_venta.cln_nombre, vw_venta.vta_cdg, vw_venta.vta_tipo, round((producto_venta.prv_cantidad)::numeric, 2) AS cantidad, producto.prd_nombre, round((producto_venta.prv_precio)::numeric, 2) AS punitario, round(((producto_venta.prv_cantidad * producto_venta.prv_precio))::numeric, 2) AS precio, vw_venta.vta_saldo FROM producto, producto_venta, vw_venta WHERE ((producto_venta.prv_producto = producto.prd_cdg) AND (producto_venta.prv_venta = vw_venta.vta_cdg));


--
-- TOC entry 196 (class 1259 OID 16668)
-- Dependencies: 2022 5
-- Name: vw_movimiento_stock; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_movimiento_stock AS
    SELECT (movimiento_stock.mvs_fecha)::date AS mvs_fecha, (movimiento_stock.mvs_fecha)::time without time zone AS mvs_hora, producto.prd_nombre, movimiento_stock.mvs_movimiento, movimiento_stock.mvs_cantidad, sucursal.suc_nombre FROM movimiento_stock, producto, sucursal WHERE ((movimiento_stock.mvs_producto = producto.prd_cdg) AND (movimiento_stock.mvs_sucursal = sucursal.suc_cdg));


--
-- TOC entry 203 (class 1259 OID 16970)
-- Dependencies: 2029 5
-- Name: vw_pago; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_pago AS
    SELECT pago.pgo_cdg, pago.pgo_fecha AS momento, (pago.pgo_fecha)::date AS pgo_fecha, (pago.pgo_fecha)::time without time zone AS pgo_time, pago.pgo_cliente, cliente.cln_nombre, sucursal.suc_nombre, round((pago.pgo_monto)::numeric, 2) AS pgo_monto, pago.pgo_tipo, pago.pgo_descripcion FROM pago, cliente, sucursal WHERE ((pago.pgo_cliente = cliente.cln_cdg) AND (pago.pgo_sucursal = sucursal.suc_cdg));


--
-- TOC entry 197 (class 1259 OID 16676)
-- Dependencies: 2023 5
-- Name: vw_producto; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_producto AS
    SELECT producto.prd_cdg, producto.prd_nombre, producto.prd_descripcion, familia_producto.fmp_nombre, fabricante.fab_nombre, producto.prd_precio1, producto.prd_precio2, producto.prd_precio3, producto.prd_precio4, producto.prd_stock_minimo, producto.prd_stock_maximo, producto.prd_iva, producto.prd_impint FROM producto, fabricante, familia_producto WHERE ((producto.prd_familia = familia_producto.fmp_cdg) AND (producto.prd_fabricante = fabricante.fab_cdg));


--
-- TOC entry 198 (class 1259 OID 16680)
-- Dependencies: 2024 5
-- Name: vw_producto_venta; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_producto_venta AS
    SELECT producto_venta.prv_cdg, producto_venta.prv_venta, producto.prd_nombre, round((producto_venta.prv_cantidad)::numeric, 2) AS cantidad, round((producto_venta.prv_precio)::numeric, 2) AS punitario, round(((producto_venta.prv_cantidad * producto_venta.prv_precio))::numeric, 2) AS precio, producto_venta.prv_iva, producto_venta.prv_impint, round(((producto_venta.prv_precio / ((producto_venta.prv_iva / (100)::double precision) + (1)::double precision)))::numeric, 2) AS punitario_siva, round(((producto_venta.prv_cantidad * (producto_venta.prv_precio - (producto_venta.prv_precio - (producto_venta.prv_precio / ((producto_venta.prv_iva / (100)::double precision) + (1)::double precision))))))::numeric, 2) AS precio_siva, round(((producto_venta.prv_cantidad * (producto_venta.prv_precio - (producto_venta.prv_precio / ((producto_venta.prv_iva / (100)::double precision) + (1)::double precision)))))::numeric, 2) AS total_iva FROM producto, producto_venta WHERE (producto_venta.prv_producto = producto.prd_cdg);


--
-- TOC entry 207 (class 1259 OID 17017)
-- Dependencies: 2031 5
-- Name: vw_resumen_cuenta; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_resumen_cuenta AS
    SELECT resumen_cuenta.rsm_cdg, resumen_cuenta.rsm_fecha AS rsm_momento, (resumen_cuenta.rsm_fecha)::date AS rsm_dia, (resumen_cuenta.rsm_fecha)::time without time zone AS rsm_hora, resumen_cuenta.rsm_cliente, cliente.cln_nombre, resumen_cuenta.rsm_descripcion, resumen_cuenta.rsm_operacion, resumen_cuenta.rsm_debe, resumen_cuenta.rsm_haber, resumen_cuenta.rsm_saldo FROM resumen_cuenta, cliente WHERE (resumen_cuenta.rsm_cliente = cliente.cln_cdg) ORDER BY resumen_cuenta.rsm_fecha;


--
-- TOC entry 199 (class 1259 OID 16685)
-- Dependencies: 2025 5
-- Name: vw_retiro_caja; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_retiro_caja AS
    SELECT retiro_caja.rtc_cdg, retiro_caja.rtc_fecha AS momento, (retiro_caja.rtc_fecha)::date AS rtc_fecha, (retiro_caja.rtc_fecha)::time without time zone AS rtc_hora, funcionario.fnc_nombre, sucursal.suc_nombre, retiro_caja.rtc_descripcion, retiro_caja.rtc_monto FROM retiro_caja, funcionario, sucursal WHERE ((retiro_caja.rtc_funcionario = funcionario.fnc_cdg) AND (retiro_caja.rtc_sucursal = sucursal.suc_cdg));


--
-- TOC entry 200 (class 1259 OID 16689)
-- Dependencies: 2026 5
-- Name: vw_retiro_premios; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_retiro_premios AS
    SELECT retiro_premios.rtp_cdg, retiro_premios.rtp_fecha, cliente.cln_nombre, retiro_premios.rtp_detalle, retiro_premios.rtp_valor FROM retiro_premios, cliente WHERE (retiro_premios.rtp_cliente = cliente.cln_cdg);


--
-- TOC entry 201 (class 1259 OID 16693)
-- Dependencies: 2027 5
-- Name: vw_stock; Type: VIEW; Schema: public; Owner: -
--

CREATE VIEW vw_stock AS
    SELECT producto.prd_cdg, producto.prd_nombre, producto.prd_descripcion, familia_producto.fmp_nombre, sucursal.suc_nombre, producto.prd_stock_minimo, producto.prd_stock_maximo, stock.stk_cantidad FROM producto, familia_producto, stock, sucursal WHERE (((stock.stk_producto = producto.prd_cdg) AND (producto.prd_familia = familia_producto.fmp_cdg)) AND (stock.stk_sucursal = sucursal.suc_cdg));


--
-- TOC entry 2085 (class 2604 OID 16999)
-- Dependencies: 206 205 206
-- Name: rsm_cdg; Type: DEFAULT; Schema: public; Owner: -
--

ALTER TABLE ONLY resumen_cuenta ALTER COLUMN rsm_cdg SET DEFAULT nextval('resumen_cuenta_rsm_cdg_seq'::regclass);


--
-- TOC entry 2088 (class 2606 OID 16698)
-- Dependencies: 162 162
-- Name: cln_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY cliente
    ADD CONSTRAINT cln_pk PRIMARY KEY (cln_cdg);


--
-- TOC entry 2090 (class 2606 OID 16700)
-- Dependencies: 164 164
-- Name: compra_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY compra
    ADD CONSTRAINT compra_pk PRIMARY KEY (cmp_cdg);


--
-- TOC entry 2093 (class 2606 OID 16702)
-- Dependencies: 166 166
-- Name: fab_nombre_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY fabricante
    ADD CONSTRAINT fab_nombre_unique UNIQUE (fab_nombre);


--
-- TOC entry 2095 (class 2606 OID 16704)
-- Dependencies: 166 166
-- Name: fab_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY fabricante
    ADD CONSTRAINT fab_pk PRIMARY KEY (fab_cdg);


--
-- TOC entry 2097 (class 2606 OID 16706)
-- Dependencies: 168 168
-- Name: fmp_nombre_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY familia_producto
    ADD CONSTRAINT fmp_nombre_unique UNIQUE (fmp_nombre);


--
-- TOC entry 2099 (class 2606 OID 16708)
-- Dependencies: 168 168
-- Name: fmp_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY familia_producto
    ADD CONSTRAINT fmp_pk PRIMARY KEY (fmp_cdg);


--
-- TOC entry 2101 (class 2606 OID 16710)
-- Dependencies: 170 170
-- Name: fnc_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY funcionario
    ADD CONSTRAINT fnc_pk PRIMARY KEY (fnc_cdg);


--
-- TOC entry 2105 (class 2606 OID 16712)
-- Dependencies: 172 172
-- Name: inc_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY incidente
    ADD CONSTRAINT inc_pk PRIMARY KEY (inc_cdg);


--
-- TOC entry 2108 (class 2606 OID 16714)
-- Dependencies: 174 174
-- Name: mvs_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY movimiento_stock
    ADD CONSTRAINT mvs_pk PRIMARY KEY (mvs_cdg);


--
-- TOC entry 2103 (class 2606 OID 16716)
-- Dependencies: 170 170
-- Name: nombre_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY funcionario
    ADD CONSTRAINT nombre_unique UNIQUE (fnc_nombre);


--
-- TOC entry 2110 (class 2606 OID 16718)
-- Dependencies: 176 176
-- Name: pago_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY pago
    ADD CONSTRAINT pago_pk PRIMARY KEY (pgo_cdg);


--
-- TOC entry 2112 (class 2606 OID 16720)
-- Dependencies: 178 178
-- Name: prd_nombre_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY producto
    ADD CONSTRAINT prd_nombre_unique UNIQUE (prd_nombre);


--
-- TOC entry 2114 (class 2606 OID 16722)
-- Dependencies: 178 178
-- Name: prd_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY producto
    ADD CONSTRAINT prd_pk PRIMARY KEY (prd_cdg);


--
-- TOC entry 2116 (class 2606 OID 16724)
-- Dependencies: 180 180
-- Name: prv_codigo_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY producto_venta
    ADD CONSTRAINT prv_codigo_pk PRIMARY KEY (prv_cdg);


--
-- TOC entry 2118 (class 2606 OID 16726)
-- Dependencies: 182 182
-- Name: prv_nombre_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY proveedor
    ADD CONSTRAINT prv_nombre_unique UNIQUE (prv_nombre);


--
-- TOC entry 2120 (class 2606 OID 16728)
-- Dependencies: 182 182
-- Name: prv_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY proveedor
    ADD CONSTRAINT prv_pk PRIMARY KEY (prv_cdg);


--
-- TOC entry 2136 (class 2606 OID 17002)
-- Dependencies: 206 206
-- Name: resumen_cuenta_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY resumen_cuenta
    ADD CONSTRAINT resumen_cuenta_pk PRIMARY KEY (rsm_cdg);


--
-- TOC entry 2122 (class 2606 OID 16730)
-- Dependencies: 183 183
-- Name: riva_PK; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY responsabilidad_iva
    ADD CONSTRAINT "riva_PK" PRIMARY KEY (riva_cdg);


--
-- TOC entry 2124 (class 2606 OID 16732)
-- Dependencies: 185 185
-- Name: rtc_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY retiro_caja
    ADD CONSTRAINT rtc_pk PRIMARY KEY (rtc_cdg);


--
-- TOC entry 2126 (class 2606 OID 16734)
-- Dependencies: 187 187
-- Name: rtp_primary_key; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY retiro_premios
    ADD CONSTRAINT rtp_primary_key PRIMARY KEY (rtp_cdg);


--
-- TOC entry 2128 (class 2606 OID 16736)
-- Dependencies: 189 189
-- Name: stock_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY stock
    ADD CONSTRAINT stock_pk PRIMARY KEY (stk_cdg);


--
-- TOC entry 2130 (class 2606 OID 16738)
-- Dependencies: 191 191
-- Name: suc_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY sucursal
    ADD CONSTRAINT suc_pk PRIMARY KEY (suc_cdg);


--
-- TOC entry 2132 (class 2606 OID 16740)
-- Dependencies: 191 191
-- Name: suc_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY sucursal
    ADD CONSTRAINT suc_unique UNIQUE (suc_nombre);


--
-- TOC entry 2134 (class 2606 OID 16742)
-- Dependencies: 193 193
-- Name: vta_pk; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY venta
    ADD CONSTRAINT vta_pk PRIMARY KEY (vta_cdg);


--
-- TOC entry 2091 (class 1259 OID 16743)
-- Dependencies: 164
-- Name: fki_cmp_suc_fk; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX fki_cmp_suc_fk ON compra USING btree (cmp_sucursal);


--
-- TOC entry 2106 (class 1259 OID 16744)
-- Dependencies: 174
-- Name: fki_mvs_suc_fk; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX fki_mvs_suc_fk ON movimiento_stock USING btree (mvs_sucursal);


--
-- TOC entry 2168 (class 2620 OID 16745)
-- Dependencies: 221 191
-- Name: ajuste_stock_alta_sucursal_trg; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER ajuste_stock_alta_sucursal_trg AFTER INSERT ON sucursal FOR EACH ROW EXECUTE PROCEDURE ajuste_stock_alta_sucursal();


--
-- TOC entry 2167 (class 2620 OID 16746)
-- Dependencies: 222 189
-- Name: ajuste_stock_cero_trg;; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER "ajuste_stock_cero_trg;" BEFORE UPDATE ON stock FOR EACH ROW EXECUTE PROCEDURE ajuste_stock_cero();


--
-- TOC entry 2164 (class 2620 OID 16747)
-- Dependencies: 225 178
-- Name: alta_stock_trg; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER alta_stock_trg AFTER INSERT ON producto FOR EACH ROW EXECUTE PROCEDURE alta_stock();


--
-- TOC entry 2161 (class 2620 OID 16748)
-- Dependencies: 164 227
-- Name: anular_compra_trg; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER anular_compra_trg AFTER DELETE ON compra FOR EACH ROW EXECUTE PROCEDURE anular_compra();


--
-- TOC entry 2165 (class 2620 OID 16749)
-- Dependencies: 180 230
-- Name: baja_por_venta_trg; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER baja_por_venta_trg AFTER INSERT ON producto_venta FOR EACH ROW EXECUTE PROCEDURE baja_por_venta();


--
-- TOC entry 2166 (class 2620 OID 16750)
-- Dependencies: 232 180
-- Name: borrar_producto_venta_trg; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER borrar_producto_venta_trg AFTER DELETE ON producto_venta FOR EACH ROW EXECUTE PROCEDURE borrar_producto_venta();


--
-- TOC entry 2163 (class 2620 OID 16751)
-- Dependencies: 172 233
-- Name: cerrar_incidencia_trg; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER cerrar_incidencia_trg BEFORE UPDATE ON incidente FOR EACH ROW EXECUTE PROCEDURE cerrar_incidencia();


--
-- TOC entry 2162 (class 2620 OID 16752)
-- Dependencies: 164 234
-- Name: comprar_trg; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER comprar_trg BEFORE INSERT ON compra FOR EACH ROW EXECUTE PROCEDURE comprar();


--
-- TOC entry 2169 (class 2620 OID 17008)
-- Dependencies: 239 206
-- Name: nueva_entrada_resumen_cuenta_trg; Type: TRIGGER; Schema: public; Owner: -
--

CREATE TRIGGER nueva_entrada_resumen_cuenta_trg BEFORE INSERT ON resumen_cuenta FOR EACH ROW EXECUTE PROCEDURE nueva_entrada_resumen_cuenta();


--
-- TOC entry 2137 (class 2606 OID 16753)
-- Dependencies: 2121 162 183
-- Name: cliente_riva_FK; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY cliente
    ADD CONSTRAINT "cliente_riva_FK" FOREIGN KEY (cln_iva) REFERENCES responsabilidad_iva(riva_cdg);


--
-- TOC entry 2141 (class 2606 OID 16758)
-- Dependencies: 172 2087 162
-- Name: cln_inc_FK; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY incidente
    ADD CONSTRAINT "cln_inc_FK" FOREIGN KEY (inc_cliente) REFERENCES cliente(cln_cdg);


--
-- TOC entry 2138 (class 2606 OID 16916)
-- Dependencies: 178 2113 164
-- Name: cmp_prd_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY compra
    ADD CONSTRAINT cmp_prd_fk FOREIGN KEY (cmp_producto) REFERENCES producto(prd_cdg);


--
-- TOC entry 2139 (class 2606 OID 16921)
-- Dependencies: 164 2119 182
-- Name: cmp_prv_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY compra
    ADD CONSTRAINT cmp_prv_fk FOREIGN KEY (cmp_proveedor) REFERENCES proveedor(prv_cdg);


--
-- TOC entry 2140 (class 2606 OID 16926)
-- Dependencies: 164 191 2129
-- Name: cmp_suc_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY compra
    ADD CONSTRAINT cmp_suc_fk FOREIGN KEY (cmp_sucursal) REFERENCES sucursal(suc_cdg);


--
-- TOC entry 2142 (class 2606 OID 16778)
-- Dependencies: 170 172 2100
-- Name: inc_func_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY incidente
    ADD CONSTRAINT inc_func_fk FOREIGN KEY (inc_responsable) REFERENCES funcionario(fnc_cdg);


--
-- TOC entry 2143 (class 2606 OID 16783)
-- Dependencies: 2113 174 178
-- Name: mvs_prd; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY movimiento_stock
    ADD CONSTRAINT mvs_prd FOREIGN KEY (mvs_producto) REFERENCES producto(prd_cdg);


--
-- TOC entry 2144 (class 2606 OID 16788)
-- Dependencies: 191 2129 174
-- Name: mvs_suc_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY movimiento_stock
    ADD CONSTRAINT mvs_suc_fk FOREIGN KEY (mvs_sucursal) REFERENCES sucursal(suc_cdg);


--
-- TOC entry 2145 (class 2606 OID 16793)
-- Dependencies: 176 2087 162
-- Name: pago_cliente_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY pago
    ADD CONSTRAINT pago_cliente_fk FOREIGN KEY (pgo_cliente) REFERENCES cliente(cln_cdg);


--
-- TOC entry 2146 (class 2606 OID 16798)
-- Dependencies: 176 191 2129
-- Name: pgo_suc_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY pago
    ADD CONSTRAINT pgo_suc_fk FOREIGN KEY (pgo_sucursal) REFERENCES sucursal(suc_cdg);


--
-- TOC entry 2147 (class 2606 OID 16803)
-- Dependencies: 178 166 2094
-- Name: prd_fabricante_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY producto
    ADD CONSTRAINT prd_fabricante_fk FOREIGN KEY (prd_fabricante) REFERENCES fabricante(fab_cdg);


--
-- TOC entry 2148 (class 2606 OID 16808)
-- Dependencies: 2098 168 178
-- Name: prf_familia_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY producto
    ADD CONSTRAINT prf_familia_fk FOREIGN KEY (prd_familia) REFERENCES familia_producto(fmp_cdg);


--
-- TOC entry 2149 (class 2606 OID 16813)
-- Dependencies: 178 2113 180
-- Name: prv_producto_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY producto_venta
    ADD CONSTRAINT prv_producto_fk FOREIGN KEY (prv_producto) REFERENCES producto(prd_cdg);


--
-- TOC entry 2150 (class 2606 OID 16818)
-- Dependencies: 2133 193 180
-- Name: prv_venta_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY producto_venta
    ADD CONSTRAINT prv_venta_fk FOREIGN KEY (prv_venta) REFERENCES venta(vta_cdg) ON DELETE CASCADE;


--
-- TOC entry 2160 (class 2606 OID 17003)
-- Dependencies: 206 162 2087
-- Name: resumen_cuenta_cliente_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY resumen_cuenta
    ADD CONSTRAINT resumen_cuenta_cliente_fk FOREIGN KEY (rsm_cliente) REFERENCES cliente(cln_cdg);


--
-- TOC entry 2151 (class 2606 OID 16823)
-- Dependencies: 2100 185 170
-- Name: rtc_fnc_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY retiro_caja
    ADD CONSTRAINT rtc_fnc_fk FOREIGN KEY (rtc_funcionario) REFERENCES funcionario(fnc_cdg);


--
-- TOC entry 2152 (class 2606 OID 16828)
-- Dependencies: 185 191 2129
-- Name: rtc_suc_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY retiro_caja
    ADD CONSTRAINT rtc_suc_fk FOREIGN KEY (rtc_sucursal) REFERENCES sucursal(suc_cdg);


--
-- TOC entry 2153 (class 2606 OID 16833)
-- Dependencies: 187 162 2087
-- Name: rtp_cliente_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY retiro_premios
    ADD CONSTRAINT rtp_cliente_fk FOREIGN KEY (rtp_cliente) REFERENCES cliente(cln_cdg);


--
-- TOC entry 2154 (class 2606 OID 16838)
-- Dependencies: 189 191 2129
-- Name: stk_sucursal_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY stock
    ADD CONSTRAINT stk_sucursal_fk FOREIGN KEY (stk_sucursal) REFERENCES sucursal(suc_cdg) ON DELETE CASCADE;


--
-- TOC entry 2155 (class 2606 OID 16843)
-- Dependencies: 2113 189 178
-- Name: stock_producto; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY stock
    ADD CONSTRAINT stock_producto FOREIGN KEY (stk_producto) REFERENCES producto(prd_cdg);


--
-- TOC entry 2156 (class 2606 OID 16936)
-- Dependencies: 162 193 2087
-- Name: vta_broker_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY venta
    ADD CONSTRAINT vta_broker_fk FOREIGN KEY (vta_broker) REFERENCES cliente(cln_cdg);


--
-- TOC entry 2157 (class 2606 OID 16941)
-- Dependencies: 193 2087 162
-- Name: vta_cliente_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY venta
    ADD CONSTRAINT vta_cliente_fk FOREIGN KEY (vta_cliente) REFERENCES cliente(cln_cdg);


--
-- TOC entry 2158 (class 2606 OID 16946)
-- Dependencies: 170 193 2100
-- Name: vta_fnc_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY venta
    ADD CONSTRAINT vta_fnc_fk FOREIGN KEY (vta_funcionario) REFERENCES funcionario(fnc_cdg);


--
-- TOC entry 2159 (class 2606 OID 16951)
-- Dependencies: 193 2129 191
-- Name: vta_suc_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY venta
    ADD CONSTRAINT vta_suc_fk FOREIGN KEY (vta_sucursal) REFERENCES sucursal(suc_cdg);


-- Completed on 2013-11-22 02:50:11

--
-- PostgreSQL database dump complete
--
-- RESPONSABILIDAD FRENTE AL IVA:
INSERT INTO responsabilidad_iva (riva_cdg, riva_descripcion) VALUES ('I', 'Responsable Inscripto');
INSERT INTO responsabilidad_iva (riva_cdg, riva_descripcion) VALUES ('N', 'Responsable no Inscripto');
INSERT INTO responsabilidad_iva (riva_cdg, riva_descripcion) VALUES ('E', 'Exento');
INSERT INTO responsabilidad_iva (riva_cdg, riva_descripcion) VALUES ('A', 'No Responsable');
INSERT INTO responsabilidad_iva (riva_cdg, riva_descripcion) VALUES ('C', 'Consumidor Final');
INSERT INTO responsabilidad_iva (riva_cdg, riva_descripcion) VALUES ('B', 'RNI vta. bienes de uso');
INSERT INTO responsabilidad_iva (riva_cdg, riva_descripcion) VALUES ('M', 'Responsable Monotributo');
INSERT INTO responsabilidad_iva (riva_cdg, riva_descripcion) VALUES ('S', 'Monotributista Social');
INSERT INTO responsabilidad_iva (riva_cdg, riva_descripcion) VALUES ('T', 'No Categorizado');

--FABRICANTE DEFAULT
INSERT INTO fabricante (fab_nombre, fab_descripcion) VALUES ('OTRO FABRICANTE', 'OTRO FABRICANTE');

--FAMILIA DE PRODUCTOS DEFAULT
INSERT INTO familia_producto (fmp_nombre, fmp_descripcion) VALUES ('OTROS', 'OTROS');

--FUNCIONARIO DEFAULT
INSERT INTO funcionario (fnc_nombre, fnc_descripcion) VALUES('DEFAULT', 'DEFAULT');

--PROVEEDOR DEFAULT
INSERT INTO proveedor (prv_nombre, prv_contacto, prv_email, prv_telefono, prv_direccion) VALUES ('OTRO PROVEEDOR', 'OTRO PROVEEDOR', '--', '--', '--');

--SUCURSAL DEFAULT
INSERT INTO sucursal(suc_nombre, suc_descripcion) VALUES ('CASA MATRIZ', 'CASA MATRIZ');

--PRODUCTO DEFAULT
INSERT INTO producto (prd_nombre, prd_descripcion, prd_familia, prd_fabricante, prd_precio1, prd_stock_minimo, prd_stock_maximo, prd_iva, prd_impint) VALUES ('PRODUCTO', '--', 1, 1, 1, 0, 0, 21, 0);

--CLIENTE DEFAULT
INSERT INTO cliente (cln_nombre, cln_cuit, cln_iva, cln_direccion, cln_email, cln_telefono, cln_region) VALUES ('CONSUMIDOR FINAL', '00000000000', 'C', '--', '--', '--', '--');


